package com.gitee.feizns.quickstart.easyexcel;

import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * sheet
 * @author feizns
 * @since 2023/2/1
 */
@Data
public class Sheet {

    /**
     * 第一行作为表头
     */
    private List<String> titles;

    /**
     * 数据
     */
    private List<List<Object>> rows;

    /**
     * 表
     * @param titles 标题
     * @param rows 数据
     */
    public Sheet(List<String> titles, List<List<Object>> rows) {
        this.titles = titles;
        this.rows = rows;
    }

    /**
     * 标题
     * @return {@link List }<{@link String }>
     */
    public List<String> titles() {
        return titles;
    }

    /**
     * 标题
     * @param index 指数
     * @return {@link String }
     */
    public String title(int index) {
        return index < titles.size() ? titles.get(index) : null;
    }

    /**
     * 数据
     * @return {@link List }<{@link List }<{@link Object }>>
     */
    public List<List<Object>> rows() {
        return rows;
    }

    /**
     * 数据（指定行和列的数据）
     * @param row 行
     * @param col 列
     * @return {@link Object }
     */
    public Object data(int row, int col) {
        return row < rows.size() && col < rows.get(row).size() ? rows.get(row).get(col) : null;
    }

    /**
     * 行
     * @param index 指数
     * @return {@link List }<{@link List }<{@link Object }>>
     */
    public List<Object> row(int index) {
        return index < rows.size() ? rows.get(index) : new ArrayList<>();
    }

    /**
     * 行
     * @param index 指数
     * @return {@link List }<{@link List }<{@link Object }>>
     */
    public List<Object> col(int index) {
        List<Object> ret = new ArrayList<>();
        for (List<Object> list : rows) {
            ret.add(list.get(index));
        }
        return ret;
    }

}
